package com.xnx3.wangmarket.admin.util.TemplateAdminMenu;

import java.util.ArrayList;
import java.util.List;

/**
 * 一级菜单，顶级菜单。网站用户登陆后，能看到哪些菜单，每个大菜单（一级菜单）都是这里生成的。每个能生成一个一级菜单
 * @author 管雷鸣
 *
 */
public class FirstMenu {
	/*
	 * 一级菜单，顶级菜单
	 * 一级菜单中，li标签的id
	 */
	public String firstMenuLiId;

	/**
	 * 一级菜单中，a标签的id
	 */
	public String firstMenuAId;

	/**
	 * 一级菜单中，a标签的href的值
	 */
	public String firstMenuAHref;

	/**
	 * 一级菜单中，图标，如： &#xe609;
	 */
	public String firstMenuIcon;

	/**
	 * 一级菜单中，菜单显示的文字，如： 生成整站
	 */
	public String firstMenuFont;
	
	/*
	 * 二级菜单，子菜单。如果有值，那么就有二级菜单，没有的话就是没有二级菜单
	 */
	List<TwoMenu> twoMenuList;
	
	/**
	 * @param liId 一级菜单中，li标签的id，没有可为null
	 * @param aId 一级菜单中，a标签的id，没有可为null
	 * @param aHref 一级菜单中，a标签的href的值
	 * @param icon 一级菜单中，图标，如： &#xe609;
	 * @param font 一级菜单中，菜单显示的文字，如： 生成整站
	 */
	public FirstMenu(String liId, String aId, String aHref, String icon, String font) {
		twoMenuList = new ArrayList<TwoMenu>();
		
		firstMenuLiId = liId;
		firstMenuAId = aId;
		firstMenuAHref = aHref;
		firstMenuIcon = icon;
		firstMenuFont = font;
	}
	
	/**
	 * 向当前顶级菜单中，加入二级菜单
	 * @param ddId dd的id，若没有，可为null
	 * @param aId	a标签的id，若没有，可为null
	 * @param aHref	a标签的href的值，必填
	 * @param font		a标签的文字，也就是二级菜单的文字，必填
	 */
	public void addTwoMenu(String ddId, String aId, String aHref, String font){
		TwoMenu tmb = new TwoMenu();
		if(ddId != null && ddId.length() > 0){
			tmb.setTwoMenuDdId(ddId);
		}
		if(aId != null && aId.length() > 0){
			tmb.setTwoMenuAId(aId);
		}
		tmb.setTwoMenuAHref(aHref);
		tmb.setTwoMenuFont(font);
		this.twoMenuList.add(tmb);
	}
	
	/**
	 * 生成当前菜单的li标签的html代码。
	 */
	public String gainMenuHTML(){
		StringBuffer sb = new StringBuffer();
		sb.append("<li class=\"layui-nav-item\""+((this.firstMenuLiId != null && this.firstMenuLiId.length() > 0)? " id=\""+this.firstMenuLiId +"\" ":"")+">"
				+ "	<a "+((this.firstMenuAId != null || this.firstMenuAId.length() > 0)? "id=\""+this.firstMenuAId +"\"":"")+" href=\""+this.firstMenuAHref +"\">"
				+ "		<i class=\"layui-icon firstMenuIcon\">"+this.firstMenuIcon +"</i>"
				+ "		<span class=\"firstMenuFont\">"+this.firstMenuFont +"</span>"
				+ "	</a>");
		//判断是否有子栏目，如果有，那么也加入进去
		if(this.twoMenuList.size() > 0){
			sb.append("<dl class=\"layui-nav-child\">");
			for (int i = 0; i < this.twoMenuList.size(); i++) {
				TwoMenu twoMenu = this.twoMenuList.get(i);
				sb.append("<dd "+((twoMenu.getTwoMenuDdId() != null && twoMenu.getTwoMenuDdId().length() > 0)? "id=\""+twoMenu.getTwoMenuDdId()+"\"":"")+" class=\"twoMenu\"><a "+((twoMenu.getTwoMenuAId() != null || twoMenu.getTwoMenuAId().length() > 0)? "id=\""+twoMenu.getTwoMenuAId()+"\"":"")+" class=\"subMenuItem\" href=\""+twoMenu.getTwoMenuAHref()+"\">"+twoMenu.getTwoMenuFont()+"</a></dd>");
			}
			sb.append("</dl>");
		}
		
		sb.append("</li>");
		return sb.toString();
	}
	
}
